import os
import sys
import datetime
from selenium import webdriver
# from selenium.webdriver.support.wait import WebDriverWait
from webdriver_manager.microsoft import EdgeChromiumDriverManager
from selenium.webdriver.edge.service import Service


class Driver:
    driver = ""
    def __init__(self):
        options = webdriver.EdgeOptions()
        self.driver = webdriver.Edge(service=Service(EdgeChromiumDriverManager().install()),options=options)
        #添加一个隐式等待，预防代码执行速度比页面渲染加载快，报错
        self.driver.implicitly_wait(2)#隐式等待两秒，隐式等待的生命周期是整个查找过程

    #截图函数
    def GetScreeShot(self):
        #首先在上一级路径创建一个文件夹，命名为：images+当天的年月日
        #创建之前先看一下，文件夹是否存在
        driname = datetime.datetime.now().strftime("%Y-%m-%d")
        if not os.path.exists("../images/"+driname):
            #如果不存在，就创建文件夹
            os.mkdir("../images/"+driname)
        #截图的图片名称要加上调用是哪个函数调用这个截图函数的
        #图片名称：BlogLoginTest-2025-3-23-123409
        filename =sys._getframe().f_back.f_code.co_name+"-"+datetime.datetime.now().strftime("%Y-%m-%d-%H%M%S")+".png"
        #利用驱动对象调用截图函数
        self.driver.save_screenshot("../images/"+driname+"/"+filename)

BlogDriver = Driver() #使用Driver类创建一个类驱动对象，其他函数想要使用这个驱动就得使用BlogDriver调用里面的驱动成员driver
